package data_structure.泛型generic;

import sun.plugin2.message.Message;


/**
 * 通配符就是问号？用于在泛型中的使用
 * 通配符用来解决泛型无法协变的问题
 *
 * ? extends 类:设置泛型上限
 * ? super 类：设置泛型下限
 *
 * 通配符上界：不能确定是哪个子类，不能进行写入数据，只能进行读取数据，不能在方法中修改数据
 * 通配符下界：不能确定是哪个父类，不能进行读取数据，可以进行修改数据和写入数据
 *
 */
public class 通配符 <T>{
    private T message;
    private boolean get通配符;

    public T get通配符(){
        return message;
    }
    public void set通配符(T message){
        this.message = message;
    }

    public static void main(String[] args) {
        通配符<String> message = new 通配符();
        message.set通配符("jk");
        fun(message);
    }
    /*
    public static void fun(通配符<String> temp){
        System.out.println(temp.get通配符);
    }
    //这个程序只能接收String，输入其他类型数据就会发生错误

     */
    //此时使用通配符？描述的是它可以接收任意类型，但是由于不确定类型，所以无法修改

    public static void fun(通配符<?> temp){
        System.out.println(temp.get通配符());
    }
}
